<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Z-buffer</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Z-buffer"> <link href="./_mw_/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Z-buffer rootpage-Z-buffer skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Z-buffer</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">
<p>En <a href="Infographie" title="Infographie">infographie</a>, le <b>Z-buffer</b> ou <b>tampon de profondeur</b> est une méthode employée dans le cadre de l'affichage d'une <a href="Sc%C3%A8ne_3D" title="Scène 3D">scène 3D</a>. Le Z-Buffer permet de gérer le problème de la visibilité qui consiste à déterminer quels éléments de la scène doivent être rendus, lesquels sont cachés par d'autres et dans quel ordre l'affichage des primitives doit se faire.
</p>
<div class="mw-heading mw-heading2"><h2 id="Description">Description</h2></div>
<p>Il est principalement utilisé par l'accélération matérielle de la 3D, mais l'est aussi dans beaucoup de <a href="Moteur_3D" title="Moteur 3D">moteurs 3D</a> logiciels.<br>
L'<a href="Algorithme_du_peintre" title="Algorithme du peintre">algorithme du peintre</a> est une autre solution pour résoudre en partie le problème de visibilité.
</p><p>Lorsqu'un objet est dessiné par une carte accélératrice 3D, la profondeur d'un pixel (coordonnée Z) est stockée dans un tampon (en anglais 'buffer', d'où <b>Z-buffer</b>). Ce tampon est en général un tableau à deux dimensions (X et Y), chaque élément étant un <a href="Pixel" title="Pixel">pixel</a> à l'écran. Si un autre élément de la scène doit être affiché aux mêmes coordonnées (X,Y), la carte compare les deux profondeurs (Z), et n'affiche que le pixel le plus proche de la caméra. La valeur Z de ce pixel est ensuite placée dans le <a href="M%C3%A9moire_tampon" title="Mémoire tampon">tampon</a> de profondeur, remplaçant donc l'ancienne. Finalement, l'image dessinée reproduit la perception de la profondeur habituelle et logique, l'objet le plus proche cachant les plus lointains.
</p><p>La granularité du tampon de profondeur joue un rôle important sur la qualité de la scène. Un tampon avec des valeurs codées sur 16 bits peut engendrer des artefacts graphiques (appelés <b>Z-fighting</b>, combat de Z-buffer) quand deux objets sont très proches l'un de l'autre (seules 65536 profondeurs distinctes sont possibles). Un Z-buffer de 32 bits agit plus correctement. Les Z-buffers de 8 bits ne sont quasiment jamais utilisés en raison de leur trop faible précision.
</p><p>Habituellement, la précision du Z-buffer n'est pas linéaire suivant la distance du point, proche ou lointain. Les valeurs proches sont plus précises (de façon à afficher les objets proches plus finement) que les valeurs lointaines (moins importantes visuellement). En général c'est le comportement voulu, mais cela peut amener des artefacts visuels au fond de la scène. Une variation de la technique du Z-buffer règle ce problème, elle s'appelle le W-buffer.
</p><p>Au début de l'affichage d'une nouvelle scène, le Z-buffer doit être initialisé avec une valeur prédéfinie qui représente la profondeur maximale, en général zéro.
</p><p>Sur les <a href="Carte_graphique" title="Carte graphique">cartes graphiques</a> des années 1999-2005, la gestion du Z-buffer utilise une quantité non négligeable de la <a href="Bande_passante" title="Bande passante">bande passante</a> mémoire. Plusieurs méthodes ont été employées pour réduire cet impact, comme la compression sans perte (la compression et la décompression par le <a href="Processeur" title="Processeur">processeur</a> sont moins coûteuses que la bande passante graphique) ou l'effacement ultrarapide par le matériel lui-même, qui rendent donc obsolète la technique du "une fois positif, une fois négatif" (qui permettait d'éviter l'effacement en gérant des nombres signés).
</p>
<div class="mw-heading mw-heading2"><h2 id="Mathématiques"><span id="Math.C3.A9matiques"></span>Mathématiques</h2></div>
<p>La plage des valeurs de profondeur dans le volume de la camera ('camera space') à dessiner est souvent définie entre <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathit {near}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">n</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">e</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathit {near}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/82a0614963c2f05dd520e49b7be76cff3cd54cae.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; margin-right: -0.144ex; width:4.689ex; height:1.676ex;" alt="{\displaystyle {\mathit {near}}}" loading="lazy"></span> (valeur minimale), et <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathit {far}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">f</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathit {far}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/f8a98dbe2f3ac8ac7d4a4a368c4d94aea8a190c9.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; margin-left: -0.052ex; margin-right: -0.144ex; width:3.08ex; height:2.509ex;" alt="{\displaystyle {\mathit {far}}}" loading="lazy"></span> (valeur au loin). Après la <a href="Transformation_g%C3%A9om%C3%A9trique" title="Transformation géométrique">transformation</a> de projection, la nouvelle valeur de <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>z</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/bf368e72c009decd9b6686ee84a375632e11de98.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.088ex; height:1.676ex;" alt="{\displaystyle z}" loading="lazy"></span>, ou <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z'}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>z</mi>
<mo>′</mo>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z'}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/7c017ef8616d0c836e4b2a88c40931333c38dd19.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.775ex; height:2.509ex;" alt="{\displaystyle z'}" loading="lazy"></span>, est définie par :
</p><p><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z'={\frac {{\mathit {far}}+{\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}}+{\frac {1}{z}}\left({\frac {-2\cdot {\mathit {far}}\cdot {\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}}\right)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>z</mi>
<mo>′</mo>
</msup>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">f</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">n</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">e</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
</mrow>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">f</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">n</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">e</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
</mrow>
</mfrac>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mn>1</mn>
<mi>z</mi>
</mfrac>
</mrow>
<mrow>
<mo>(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mo>−<!-- − --></mo>
<mn>2</mn>
<mo>⋅<!-- ⋅ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">f</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
<mo>⋅<!-- ⋅ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">n</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">e</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
</mrow>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">f</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-mathit" mathvariant="italic">n</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">e</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">a</mi>
<mi class="MJX-tex-mathit" mathvariant="italic">r</mi>
</mrow>
</mrow>
</mrow>
</mfrac>
</mrow>
<mo>)</mo>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z'={\frac {{\mathit {far}}+{\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}}+{\frac {1}{z}}\left({\frac {-2\cdot {\mathit {far}}\cdot {\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}}\right)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/d13fbc1ee90d6b06496279781acc6578ae31aee4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.505ex; width:39.22ex; height:6.176ex;" alt="{\displaystyle z'={\frac {{\mathit {far}}+{\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}}+{\frac {1}{z}}\left({\frac {-2\cdot {\mathit {far}}\cdot {\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}}\right)}" loading="lazy"></span>
</p><p>Oú <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z'}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>z</mi>
<mo>′</mo>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z'}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/7c017ef8616d0c836e4b2a88c40931333c38dd19.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.775ex; height:2.509ex;" alt="{\displaystyle z'}" loading="lazy"></span> est la nouvelle valeur de <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>z</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/bf368e72c009decd9b6686ee84a375632e11de98.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.088ex; height:1.676ex;" alt="{\displaystyle z}" loading="lazy"></span>, et est parfois appelé <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle w}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>w</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle w}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/88b1e0c8e1be5ebe69d18a8010676fa42d7961e6.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.664ex; height:1.676ex;" alt="{\displaystyle w}" loading="lazy"></span> ou <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle w'}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>w</mi>
<mo>′</mo>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle w'}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/98af407af5c02e29010c7563af95f8986026679c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.349ex; height:2.509ex;" alt="{\displaystyle w'}" loading="lazy"></span>.
</p><p>Les valeurs résultantes de <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z'}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>z</mi>
<mo>′</mo>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z'}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/7c017ef8616d0c836e4b2a88c40931333c38dd19.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.775ex; height:2.509ex;" alt="{\displaystyle z'}" loading="lazy"></span> sont normalisées entre -1 et 1, où le plan <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle near}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
<mi>e</mi>
<mi>a</mi>
<mi>r</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle near}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/fff6801b1a4039d0fd778419b3f4244d799dc371.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:4.757ex; height:1.676ex;" alt="{\displaystyle near}" loading="lazy"></span> est -1, et le plan <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle far}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>f</mi>
<mi>a</mi>
<mi>r</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle far}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/ca4418f905638615905e13a151491c64b0093900.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.557ex; height:2.509ex;" alt="{\displaystyle far}" loading="lazy"></span> à 1. Les valeurs en dehors de cette plage ne sont pas dans le volume vision, et ne doivent pas être dessinées.
</p><p>Pour implémenter un Z-buffer, les valeurs de <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z'}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>z</mi>
<mo>′</mo>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z'}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/7c017ef8616d0c836e4b2a88c40931333c38dd19.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.775ex; height:2.509ex;" alt="{\displaystyle z'}" loading="lazy"></span> sont <a href="Interpolation_lin%C3%A9aire" title="Interpolation linéaire">interpolées linéairement</a> sur la surface de l'écran entre les valeurs <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle z}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>z</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle z}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/bf368e72c009decd9b6686ee84a375632e11de98.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.088ex; height:1.676ex;" alt="{\displaystyle z}" loading="lazy"></span> des points du <a href="Polygone" title="Polygone">polygone</a> courant.
</p>
<div class="mw-heading mw-heading2"><h2 id="Autres_utilisations">Autres utilisations</h2></div>
<p>Le Z-Buffer peut être utilisé pour d'autres effets graphiques comme des effets de flou dont l'intensité varie en fonction de la profondeur (pour simuler la <a href="Profondeur_de_champ" title="Profondeur de champ">profondeur de champ</a>). La connaissance de la profondeur de chaque pixel permet aussi d'implémenter un effet de brouillard avec une densité maximale lorsque le pixel est éloigné.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style="">
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="Edwin_Catmull" title="Edwin Catmull">Edwin Catmull</a>, l'inventeur de la technique du Z-Buffer</li>
<li><a href="Moteur_3D" title="Moteur 3D">Moteur 3D</a></li>
<li><a href="M%C3%A9moire_tampon" title="Mémoire tampon">Mémoire tampon</a></li>
<li><a href="D%C3%A9termination_des_surfaces_cach%C3%A9es" title="Détermination des surfaces cachées">Détermination des surfaces cachées</a></li></ul>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’imagerie numérique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-10-15" href="https://fr.wikipedia.org/wiki/?title=Z-buffer&oldid=229792804">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>